package com.hz.blogService.domain;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

import java.io.Serializable;

/**
 * 用户表 - 跨库查询（blog_service → user_service）
 * @TableName users
 */
@TableName(value ="user_service.users")
@Data
public class User implements Serializable {
    /**
     * 主键，自增
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 登录用户名，唯一性
     */
    @TableField(value = "username")
    private String username;

    /**
     * 真实姓名
     */
    @TableField(value = "real_name")
    private String realName;

    /**
     * 性别（0：男；1：女，默认 0）
     */
    @TableField(value = "sex")
    private Integer sex;

    /**
     * 学号（6 位），唯一性
     */
    @TableField(value = "student_id")
    private String studentId;

    /**
     * 密码混淆项
     */
    @TableField(value = "pwd_salt")
    private String pwdSalt;

    /**
     * 密码密文
     */
    @TableField(value = "pwd")
    private String pwd;

    /**
     * 密码有效期，时间戳
     */
    @TableField(value = "pwd_valid_date")
    private Long pwdValidDate;

    /**
     * 用户类型（1：管理员；2：教师；3：学生，默认 3）
     */
    @TableField(value = "user_type")
    private Integer userType;

    /**
     * 密码输错次数，每次正常登录后
归 0（默认 0）
     */
    @TableField(value = "pwd_error_count")
    private Integer pwdErrorCount;

    /**
     * 班级 ID，外键关联 `classes` 表主键 id
     */
    @TableField(value = "class_id")
    private Integer classId;

    /**
     * 年级 ID，外键关联 `grades` 表主键 id
     */
    @TableField(value = "grade_id")
    private Integer gradeId;

    /**
     * 是否被删除（0：否；1：是，默认 0）
     */
    @TableField(value = "is_deleted")
    @TableLogic
    private Integer isDeleted;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}